Maintaining the consistency of source code in a large repository is a difficult and important problem. In a typical large software development project, new programmers are added to a software project as other programmers leave the project, and responsibility for different portions of the source code typically changes over time. For a variety of reasons, new programmers often have difficulty when working with established unfamiliar code. One reason for this is differences in programming style. Different programmers often apply their own personal preferences and styles to their work, and when that work is transitioned to a new person that prefers a different style, the differences in style make the code more difficult to understand. As a result, many organizations impose code conventions, which are a set of rules that define a preferred style, formatting, and structure for the code. Setting and enforcing a code convention standard is important for the long term success of a software project, but can be very time consuming and politically challenging for the committee or managing entity setting the rules.